﻿using LM.InterfacesFabricas.DTOs;
using LM.InterfacesFabricas.Fabricas;
using LM.InterfacesFabricas.Interfaces.Servicos;
using LM.InterfacesFabricas.Utilidades;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LM.Tela.Desktop
{
    public partial class frmRelatoriosLocacao : Form
    {
        public frmRelatoriosLocacao()
        {
            InitializeComponent();
        }


        private void chkPeriodo_CheckedChanged(object sender, EventArgs e)
        {
            if (chkPeriodo.Checked)
            {
                gbPeriodo.Enabled = true;
                chkCliente.Checked = false;
            }
            else 
            {
                gbPeriodo.Enabled = false;
            }
            
        }

        private void chkCliente_CheckedChanged(object sender, EventArgs e)
        {
            if (chkCliente.Checked)
            {
                gbCliente.Enabled = true;
                chkPeriodo.Checked = false;
            }
            else 
            {
                gbCliente.Enabled = false;
                cboCliente.SelectedIndex = -1;
                mskCpf.Text = String.Empty;
            }
            
        }

        private void frmRelatoriosLocacao_Load(object sender, EventArgs e)
        {
            var servicoCliente = FabricaGenerica.Crie<IServicoDeCliente>();

            cboCliente.DataSource = servicoCliente.ConsulteTodos();
            cboCliente.ValueMember = "Nome";
            cboCliente.SelectedIndex = -1;
        }

        private void cboCliente_SelectedIndexChanged(object sender, EventArgs e)
        {
            mskCpf.Text = String.Empty;
            if (cboCliente.SelectedIndex != -1)
            {
                var cliente = (DtoCliente)cboCliente.SelectedItem;
                mskCpf.Text = cliente.Cpf.ToString("00000000000");
            }
        }

        private void btnImprimir_Click(object sender, EventArgs e)
        {
            var servicoRelatorio = FabricaGenerica.Crie<IServicoDeRelatorios>();
            if (chkPeriodo.Checked == true)
            {
                //relatório por periodo
                var dataInicial = DataUtil.ConverteDataParaDataTime(maskedTextBox1.Text);
                var dataFinal = DataUtil.ConverteDataParaDataTime(maskedTextBox2.Text);

                servicoRelatorio.ImprimeRelatorioPorPeriodo(dataInicial, dataFinal);
            }
            else if (chkCliente.Checked == true)
            {
                //relatório por cliente
                servicoRelatorio.ImprimeRelatorioPorCliente((DtoCliente)cboCliente.SelectedItem);
            }
        }
    }
}
